package main

import "fmt"

// func main() {
// 	//数组的定义
// 	//var variable_name [SIZE] variable_type
// 	var a [3]int    //定义一个int类型的数组a,长度为3
// 	var b [5]string //定义一个string类型的数组b,长度为5
// 	var c [2]bool
// 	fmt.Printf("a: %T\n", a) //a: [3]int
// 	fmt.Printf("b: %T\n", b) //b: [5]string

// 	//初始化 - 未初始化为默认值
// 	fmt.Printf("a: %v\n", a) //a: [0 0 0]
// 	fmt.Printf("b: %v\n", b) //b: [    ]
// 	fmt.Printf("c: %v\n", c) //c: [false false]

// 	//使用初始化列表
// 	var a1 = [3]int{1, 2, 3}
// 	var b1 = [2]string{"skye", "胖子"}
// 	var c1 = [2]bool{true, false}
// 	fmt.Printf("a1: %v\n", a1)
// 	fmt.Printf("b1: %v\n", b1)
// 	fmt.Printf("c1: %v\n", c1)

// 	//类型推断
// 	d1 := [2]int{1, 2}
// 	fmt.Printf("d1: %T\n", d1) //d1: [2]int

// 	//省略数组长度
// 	var e = [...]int{1, 2, 3, 4, 6}
// 	var f = [...]string{"hiii", "byeeeee"}
// 	fmt.Printf("e: %T\n", e) //e: [5]int
// 	fmt.Printf("f: %T\n", f) //f: [2]string

// 	//根据索引值的方式来初始化
// 	var g = [...]int{0: 1, 2: 5, 6: 3} //[1 0 5 0 0 0 3]
// 	var h = [...]string{0: "tim", 3: "lucy"} //h: [tim   lucy]
// 	fmt.Printf("g: %v\n", g)
// 	fmt.Printf("h: %v\n", h)
// }

//访问数组元素 - 通过下标
func main() {
	var a [2]int
	a[0] = 10
	a[1] = 20
	fmt.Printf("a: %v\n", a) //a: [10 20]
	//修改a[0] a[1]
	a[0] = 60
	a[1] = 80
	fmt.Printf("a: %v\n", a) //a: [60 80]
	//根据数组长度遍历数组
	b := [...]int{1, 2, 3, 4, 5, 6}
	for i := 0; i < len(b); i++ {
		fmt.Printf("b[%v]: %v\n", i, b[i])
	}
	//使用for range数组
	for i, v := range b {
		fmt.Printf("b[%v]: %v\n", i, v)
	}

}
